package org.jeecg.modules.wlhy.customer.service;

import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.paycenter.channel.bankdocking.dto.Acc;
import org.jeecg.modules.wlhy.bill.entity.HyCustomerBill;
import org.jeecg.modules.wlhy.customer.entity.HyCustomer;
import org.jeecg.modules.wlhy.customer.entity.HyCustomerAccountBook;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.wlhy.hycustomerbank.entity.HyCustomerBank;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Description: hy_customer_account_book
 * @Author: jeecg-boot
 * @Date:   2021-01-15
 * @Version: V1.0
 */
public interface IHyCustomerAccountBookService extends IService<HyCustomerAccountBook> {

    void addAccountBook(HyCustomerAccountBook hyCustomerAccountBook);

    Map getAccountBookInfo() throws Exception;

    void editPayPwd(String oldPwd, String password);

    void ResetPayPwd(String password);

    HyCustomerAccountBook getAccountBookByCustomerId(String customerid);

    boolean checkPayPwd(String pw, HyCustomerAccountBook customerAccountBook);

    Acc getCustomerAcc(HyCustomerAccountBook accountBook);

    Map getAcc();

    BigDecimal getDJSByCustomerId(String customerId);

    Result<?> tx(HyCustomer customer, HyCustomerAccountBook customerAccountBook, HyCustomerBank customerBank, BigDecimal amt);

    void exchangeStatus(HyCustomerBill customerBill);

    String createCustomerLogAccNo();

    List<HyCustomerAccountBook> getAccountBookByCustomerIds(Set<String> agentSet);

    HyCustomerAccountBook getWalletInfo(String customerId);

    void updateCustomerAccInfo(HyCustomerAccountBook customerAccountBook) throws Exception;
}
